<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">
<html lang="zh-CN"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta http-equiv="Content-Language" content="zh-CN"><link href="stylesheet.css" media="all" rel="stylesheet" type="text/css">
<title>日常数据库维护工作</title>
<script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d286c55b63a3c54a1e43d10d4c203e75"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script>
</head><body class="CHAPTER">
<div>
<table summary="Header navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><th colspan="5" align="center" valign="bottom">PostgreSQL 8.2.3 中文文档</th></tr>
<tr><td width="10%" align="left" valign="top"><a href="multibyte.html" accesskey="P">后退</a></td><td width="10%" align="left" valign="top"><a href="charset.html">快退</a></td><td width="60%" align="center" valign="bottom"></td><td width="10%" align="right" valign="top"><a href="backup.html">快进</a></td><td width="10%" align="right" valign="top"><a href="routine-vacuuming.html" accesskey="N">前进</a></td></tr>
</table>
<hr align="LEFT" width="100%"></div>
<div class="CHAPTER"><h1><a name="MAINTENANCE"></a>章22. 日常数据库维护工作</h1>
<div>
<dl>
<dt><b>目录</b></dt>
<dt>22.1. <a href="routine-vacuuming.html">日常清理</a></dt>
<dd><dl>
<dt>22.1.1. <a href="routine-vacuuming.html#VACUUM-FOR-SPACE-RECOVERY">恢复磁盘空间</a></dt>
<dt>22.1.2. <a href="routine-vacuuming.html#VACUUM-FOR-STATISTICS">更新规划器统计</a></dt>
<dt>22.1.3. <a href="routine-vacuuming.html#VACUUM-FOR-WRAPAROUND">避免事务 ID 重叠造成的问题</a></dt>
<dt>22.1.4. <a href="routine-vacuuming.html#AUTOVACUUM">auto-vacuum 守护进程</a></dt>
</dl></dd>
<dt>22.2. <a href="routine-reindex.html">经常重建索引</a></dt>
<dt>22.3. <a href="logfile-maintenance.html">日志文件维护</a></dt>
</dl>
</div>
<a name="AEN24482"></a><a name="AEN24484"></a>
<p>像许多其它数据库一样，PostgreSQL 也需要周期性的运行某些任务以实现性能优化。这里讨论的任务是<span class="emphasis"><i class="EMPHASIS">必须</i></span>经常重复的事情，可以很容易的使用标准的 Unix 工具(比如 <span class="APPLICATION">cron</span> 脚本)或 Windows 的 <span class="APPLICATION">任务计划</span>来完成。不过，设置合适的脚本以及检查它们是否成功执行则是数据库管理员的责任。</p>
<p>一件很明显的维护工作就是经常性地创建数据的备份拷贝。如果没有最近的备份，那么你就没有从灾难中恢复的机会(磁盘坏、失火、误删表)。可以在 PostgreSQL 里面使用的备份和恢复机制在<a href="backup.html">章23</a>里面有比较详细的讨论。</p>
<p>其它主要的维护工作包括周期性的"vacuuming"(清理)数据库。这个工作我们在<a href="routine-vacuuming.html">节22.1</a>里讨论。与此紧密相关的是更新规划器使用的统计信息，这个在<a href="routine-vacuuming.html#VACUUM-FOR-STATISTICS">节22.1.2</a>里讨论。</p>
<p>其它需要周期性注意的东西是日志文件的管理。我们在<a href="logfile-maintenance.html">节22.3</a>里讨论了这个问题。</p>
<p>PostgreSQL 和其它数据库产品比较起来是低维护量的。但是，适当在这些任务上放一些注意将更加能够确保我们的愉快工作和获取对这个系统富有成效的经验。</p>
</div>
<div>
<hr align="LEFT" width="100%">
<table summary="Footer navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td width="33%" align="left" valign="top"><a href="multibyte.html" accesskey="P">后退</a></td><td width="34%" align="center" valign="top"><a href="index.html" accesskey="H">首页</a></td><td width="33%" align="right" valign="top"><a href="routine-vacuuming.html" accesskey="N">前进</a></td></tr>
<tr><td width="33%" align="left" valign="top">字符集支持</td><td width="34%" align="center" valign="top"><a href="admin.html" accesskey="U">上一级</a></td><td width="33%" align="right" valign="top">日常清理</td></tr>
</table>
</div>
</body></html>